iT邦幫忙

0

[Compiler 筆記 (1)]:尋找適合 trace 的專案

  • 分享至 

  • xImage
  •  

動機

這學期上了 compiler 的課程,但學校教的東西都比較偏理論,所以最近想要看看真正的 compiler 是怎麼寫出來的,於是找了一些專案來讀讀看。

看了幾個專案的心得

1. gcc:

說到 compiler 第一個讓人想到的就是 gcc 了,所以一開始就嘗試 trace gcc,但後來發現因為這個專案包含了許多語言的 compiler,所以一開始光是看整體的架構就有些吃力了,於是放棄繼續讀 gcc。

2. tcc 以及 lcc:

我的感覺差不多,比 gcc 容易讀的許多,但還是沒有很容易讀(因為筆者能力不足嗚嗚),我會有點難以把學校教的東西對應到程式碼當中。

3. c4:

超級精簡的 compiler,總共只有 4 個 function,但反而精簡到不太清楚哪些程式碼在做些什麼(筆者也太挑XD)有種把 parser, codegen, vm, 都混雜在一起的感覺,不過確實寫的很簡化又很帥。

4. chibic:

筆者覺得最適合自己的專案,功能完整卻又不會太複雜,以 cc1() 這個 function 來說明,裡面就可以看到 scanner(tokenizer), parser, codegen 這幾個上課題過的步驟分別呼叫了哪些 function 來完成,比較能夠與學過的理論做連結。

結論

有時候看不懂的專案還是放棄繼續研究、尋找更適合自己的比較好XD,之後打算參考 chibic 的架構來寫出一個功能勉強堪用的 C compiler。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言